Generally described, computer systems provide users with an opportunity to use a number of software applications. In many operating environments, users can instantiate two or more software applications at the same time, often referred to as multi-tasking. For example, a user can instantiate a word processing program, electronic mail program and Internet browser software application at the same. To access each instantiated software application, the user can manipulate various controls, such as a mouse or keyboard, to select a particular instantiated software application.
In a typical embodiment, at least of portion of each instantiated software application can be displayed to the user in the graphical display as a graphical window. Additionally, each graphical window can be organized in manner that allows multiple graphical windows to be visible to the user at the same time. Because multiple graphical windows may be displayed concurrently to the user, there are situations in which at least a portion of the graphical windows overlaps. Because two or more graphical windows may be overlapping, a typical operating environment resolves an overlap in a variety of manners.
In the simplest solution, each graphical window is associated with an order display priority. In the event that graphical windows overlap, the window with the greatest display priority will be displayed in its entirety. Any underlying graphical windows with a lower priority are displayed with the overlapping portion of the graphical window removed. With reference to FIG. 1, an illustrative screen display 100 includes two graphical windows 102, 104 corresponding to instantiated software applications. As illustrated in FIG. 1, at least a portion of the graphical windows 102, 104 overlaps, as illustrated at 106. Assuming that the graphical window 104 has a higher display priority, graphical window 104 is display in its entirety, while graphical window 102 is displayed with the overlapping portion 106 omitted. Thus, graphical window 104 appears to be the foreground image, while graphical window 102 appears to become the background image.
In addition to resolving display priorities between graphical windows corresponding to instantiated software applications, in another typical embodiment, a software application may be associated with one or more tools that are displayed to the user as part of the display of the software application. The user tools are often referred to as “palettes.” Palettes can be displayed to the user as separate graphical windows that have a higher display priority than the underlying software application graphical window. With reference now to FIG. 2, an illustrative screen display 200 includes a single graphical display corresponding to an instantiated software application. The screen display 200 includes some underlying content 202 being displayed to the user. In addition to the screen display 200, two palettes 206, 208 are displayed with a higher display order than the underlying screen display 200.
In both of the above examples, at least a portion of the underlying content from a graphical window having a lower display priority is occluded from the view of the user. Although users can adjust location of each graphical window and/or utilize larger screen displays or multiple screen displays, there are many embodiments in which graphical windows may overlap and in which the user does not wish to have the underlying content complete occluded from view.
One approach for allowing at least a portion of underlying content to be visible to a user corresponds to the association of a transparency property to the higher display priority graphical window. A typical conventional approach to associating transparency properties to images is referred to as alpha blending. One skilled in the relevant art will appreciate that alpha blending relates to the association of a single weighted value to the color value data for each pixel of a foreground and background image. The degree of transparency corresponds to the weight placed on the foreground image. Equation 1 defines alpha blending for a color schema defining images according to its red, green and blue color values (“RGB”) as:RxGxBx=R1α+R2(1−α)+G1α+G2(1−α)+B1α+B2(1−α)  (1)                where: R1G1B1=color pixel values for a first image;                    R2G2B2=color pixel values for a second image; and            α=alpha valueThe utilization of RGB values to represent images and the utilization of alpha blending to provide transparency properties to images are well known in the art and will not be described in greater detail.                        
Although the utilization of alpha blending facilitates the display of underlying content, alpha-blending techniques can become deficient in a variety of manners. In one aspect, the blending of foreground and background images can affect the readability of either the foreground or background content. In another aspect, in the event that content from both the foreground and background is similar in some way (such as color, shape, size, etc.), conventional alpha blending techniques may make it difficult for a user to determine whether the “blended ” content belongs to the foreground or background image.
Thus, there is a need for a system and method for displaying images that facilitates content readability and/or content identification.